﻿using Onshi.POS.Modelo.Enumeradores;
using Onshi.POS.Modelo.Objectos;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Onshi.POS.Modelo.Entidades
{
    [Serializable]
    public class ArticuloListaPrecioVenta : ArticuloListaPrecioBase<ListaPrecioVenta>
    {
        #region Constructores

        public ArticuloListaPrecioVenta() :
            base()
        {

        }

        #endregion

        private Articulo articulo;

        public Articulo Articulo
        {
            set { articulo = value; }
        }

        #region Propiedades


        public String PrecioFormato
        {
            get { return Formato.Moneda(Precio); }
        }

        public Decimal Precio
        {
            get
            {
                var precio = 0m;
                switch ((EnumTiposListasPreciosVentas)Entidad.Tipo.Id)
                {
                    case Onshi.POS.Modelo.Enumeradores.EnumTiposListasPreciosVentas.MontoFijo:
                        precio = Valor;
                        break;
                    case Onshi.POS.Modelo.Enumeradores.EnumTiposListasPreciosVentas.CostoMasMontoFijo:
                        precio = articulo.Costo + Valor;
                        break;
                    case Onshi.POS.Modelo.Enumeradores.EnumTiposListasPreciosVentas.CostoMasPorcentaje:
                        precio = articulo.Costo + ((articulo.Costo / 100) * Valor);
                        break;
                }
                return precio;
            }
        }

        public String ValorFormato
        {
            get
            {
                var valorFormato = String.Empty;
                switch ((EnumTiposListasPreciosVentas)Entidad.Tipo.Id)
                {
                    case Onshi.POS.Modelo.Enumeradores.EnumTiposListasPreciosVentas.MontoFijo:
                    case Onshi.POS.Modelo.Enumeradores.EnumTiposListasPreciosVentas.CostoMasMontoFijo:
                        valorFormato = Formato.Moneda(Valor);
                        break;
                    case Onshi.POS.Modelo.Enumeradores.EnumTiposListasPreciosVentas.CostoMasPorcentaje:
                        valorFormato = Formato.Porcentaje(Valor);
                        break;
                }
                return valorFormato;
            }
        }

        public String ListaPrecioTipoNombre
        {
            get { return Entidad.Tipo.Nombre; }
        }

        #endregion
    }
}
